package com.liuyucheng.generic.wildcard;

import java.util.ArrayList;

public class TestWildCardDownLimit {
    public static void main(String[] args) {
        ArrayList<Animal> animals = new ArrayList<>();
        ArrayList<Cat> cats = new ArrayList<>();
        ArrayList<MiniCat> miniCats = new ArrayList<>();

        showAnimal(animals);
        showAnimal(cats);
//        showAnimal(miniCats);
    }

    /**
     * 类型通配符下限，要求只能传Cat或Cat的父类类型
     * @param list 集合
     */
    public static void showAnimal(ArrayList<? super Cat> list){
        //使用下限通配符，可以往集合里添加这些元素
//        list.add(new Cat());
//        list.add(new MiniCat());
//        list.add(new Animal());
        for(Object cat : list){
            System.out.println("cat = " + cat);
        }
    }
}
